#include <head.h>

int main(int argc, char const *argv[])
{
    pid_t pid  = 0;

    if (-1 == (pid = fork()))
    {
        ERRLOG("子进程创建失败");
        return 0;
    }

    else if (0 == pid) // 子进程
    {
        sleep(1);
        printf("我是子进程pid == %d\n" , getpid());
        printf("我是子进程ppid == %d\n" , getppid());
        // exit(88);
        while (1)
        {
            /* code */
        }
        
    }


    else if (0 < pid) // 父进程
    {
        printf("我是父进程pid == %d\n" , getpid());
        printf("我是父进程ppid == %d\n" , getppid());


        int stat = 0;
        printf("stat = %d\n" , stat);
        wait(&stat); // 阻塞态
        printf("stat = %d\n" , stat);

        if (WIFEXITED(stat)) // 判断是否为正常退出
        {
            printf("正常退出 退出状态为 %d\n" , WEXITSTATUS(stat));
        }
        if(WIFSIGNALED(stat)) // 判断是否为信号中断
        {
            printf("信号退出 退出状态为 %d\n" , WTERMSIG(stat));
        }
        
    }     
    
    
}